<?php
/**
 * Created by PhpStorm.
 * User: Shen
 * Date: 2016/7/9
 * Time: 22:05
 */

//缓存
//静态缓存：存放在服务器磁盘中的静态文件
class File{
    private $_dir;

    const EXT = '.txt';
    public function __construct(){
        $this->_dir = dirname(__FILE__) . '/files/';
    }

    public function cacheData($key,$value='',$path='',$cacheTime=0){
        $filename = $this->_dir . $path . $key . self::EXT;

        if ($value !== '') {  //将value值写入缓存
            if (is_null($value)){
                //删除文件
                return @unlink($filename);
            }
            $dir = dirname($filename);
            if (!is_dir($dir)) {
                mkdir($dir, 0777);
            }

            $cacheTime = sprintf('%011d',$cacheTime); //取11位，不够的补零


            return file_put_contents($filename,json_encode($value));
        }
        //获取缓存
        if (!is_file($filename)){
            return FALSE;
        }
        $contents = file_get_contents($filename);
        $cacheTime = (int)substr($contents, 0,11);
        $value = substr($contents, 11);
        if ($cacheTime != 0 && $cacheTime + filemtime($filename) < time()) { //文件失效，删除
            unlink($filename);
            return FALSE;
        }
        return json_decode($value,true);

    }
}


/* Memcache和Redis都是用来管理数据的，他们的数据都是存放在内存中，Radis可以定期将数据备份到磁盘(持久化)，
 * Memcache只是简单的key/value缓存，Redis不仅仅支持简单的k/v类型的数据，同时还提供list/set/hash等数据结构存储
 *
 *
 * 1.开启redis客户端，2.设置缓存值 set index-mk-cache '数据'，3.获取缓存数据 - get index-nk-cache
 * 4.设置过期时间 setex key 10 'cache'，5.删除缓存 del key
 *
 * 安装redis服务，然后连接
 * memcache用法是一样的
 */

$redis = new Redis();
$redis -> connect('127.0.0.1',1024);


/*
 * Linux定时任务
 *  crontab -e 编辑某个用户的cron服务
 *  crontab -l 列出某个用户cron服务的详细内容
 *  crontab -r 删除某个用户的cron服务
 *
 *  crontab格式
 *
 *  分钟   小时  日      月   星期   命令
 *   *      *    *       *     *   command
 *  0-59   0-23  1-31   1-12  0-6
 *
 *
 *   *  代表取值范围内的数字
 *   /  代表每，比如每分钟等
 *
 */

 //    */1 * * * * php /data/www/cron.php   表示每分钟执行 cron.php
 //     50 7 * * * /sbin/service sshd start 每天七点五十开启ssh服务


